package com.example.service.impl;

import com.example.service.SendService;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.support.RocketMQHeaders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.messaging.Source;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.messaging.MessageHeaders;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.util.MimeTypeUtils;

import javax.annotation.Resource;

/**
 * @author ：liukai
 * @date ：Created in 2021/9/7 2:38 下午
 * @description：
 * @modified By：
 * @version: $
 */
@EnableBinding(Source.class)
@Slf4j
public class SendServiceImpl implements SendService {

    @Resource
    private MessageChannel output;

    @Override
    public String sendMessage(String str) {
        boolean flag = output.send(MessageBuilder.withPayload(str).build());
        log.info("flag:" + flag);
        return "发送结果:" + flag;
    }

//    @Resource
//    private MySources source;
//
//    /**
//     * 发送字符串
//     *
//     * @param msg
//     */
//    @Override
//    public void send(String msg) {
//        Message message = MessageBuilder.withPayload(msg)
//                .build();
//        source.output1().send(message);
//    }
//
//    /**
//     * 发送带tag的字符串
//     *
//     * @param msg
//     * @param tag
//     */
//    @Override
//    public void sendWithTags(String msg, String tag) {
//        Message message = MessageBuilder.withPayload(msg)
//                .setHeader(RocketMQHeaders.TAGS, tag)
//                .build();
//        source.output1().send(message);
//    }
//
//    /**
//     * 发送对象
//     *
//     * @param msg
//     * @param tag
//     * @param <T>
//     */
//    @Override
//    public <T> void sendObject(T msg, String tag) {
//        Message message = MessageBuilder.withPayload(msg)
//                .setHeader(RocketMQHeaders.TAGS, tag)
//                .setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON)
//                .build();
//        source.output2().send(message);
//    }

}
